package cn.trigram.example.designpattern.composite;

import java.util.Iterator;
import java.util.List;

/**
 * 组合模式中的个体和整体对象的公共接口<br>
 * 组合模式在于访问整体和个体都是一样的方式，在使用者看来没有区别<br>
 * 最典型的使用就是树结构
 */
public interface Component {

  void addFile(Component file);

  Component addFolder(Component folder);

  void removeFile(Component file);

  void removeFolder(Component folder);

  List<Component> getFiles();

  List<Component> getFolders();

  List<Component> getAll();

  Iterator<Component> iterator();

  void display();

}